================================================================================
README - Navigating the Matrix Approximation Project Archive
================================================================================

### INTRODUCTION
This file provides a guide to understanding and navigating the contents of this ZIP archive for the "Matrix Approximation Algorithms and Bounds Analysis" project. The project focuses on implementing, evaluating, and comparing various matrix approximation algorithms and their theoretical bounds.

This archive is organized into self-contained sets of files for each distinct experiment, ensuring that each experiment can be understood and run independently.

### ARCHIVE CONTENTS OVERVIEW
This ZIP archive contains the following key components:

1.  **`README_Archive_Contents_Guide.txt` (This File)**:
    *   Provides an overview of the archive structure and guidance on how to approach the project files.

2.  **Experiment-Specific Sets**:
    *   The archive contains one or more sets of files, each dedicated to a specific experiment (e.g., "Experiment 1", "Experiment 4").
    *   Each experiment set typically includes three files, named with the experiment number:
        *   `matrix_product_approximations_expNUMBER.py`: The Python script containing all core functions, algorithms, and logic specific to Experiment `NUMBER`. This acts as the self-contained "library" for that particular experiment.
        *   `run_experimentNUMBER.py`: The Python script used to configure and execute Experiment `NUMBER`. This is the main script you will run for that specific experiment.
        *   `README_Experiment_NUMBER.txt`: A detailed text file explaining the objectives, setup, configuration, execution, and expected output specifically for Experiment `NUMBER`.

### DESCRIPTION OF FILE TYPES WITHIN EACH EXPERIMENT SET

For any given Experiment `NUMBER` (e.g., Experiment 1, Experiment 4), you will find:

*   **`matrix_product_approximations_expNUMBER.py`**:
    This Python file contains all the necessary code for Experiment `NUMBER`. This includes matrix generation routines, implementations of the approximation algorithms being tested in that experiment, functions for calculating relevant theoretical bounds, and any helper utilities or plotting configurations specific to that experiment. It is designed to be self-sufficient for that experiment.

*   **`run_experimentNUMBER.py`**:
    This is the executable script for Experiment `NUMBER`. It imports and uses the functions defined in `matrix_product_approximations_expNUMBER.py`. You will typically modify parameters within this `run_experimentNUMBER.py` file to customize the execution of Experiment `NUMBER`.

*   **`README_Experiment_NUMBER.txt`**:
    This is the most important document for understanding and running Experiment `NUMBER`. It provides a comprehensive guide covering:
    *   The specific objectives and methodology of Experiment `NUMBER`.
    *   Detailed setup instructions, including required Python libraries (which are generally consistent across experiments but should be confirmed here).
    *   Explanation of configuration parameters found within `run_experimentNUMBER.py`.
    *   Step-by-step instructions on how to execute Experiment `NUMBER`.
    *   A description of the expected output (plots, data files) and how to interpret them in the context of Experiment `NUMBER`.

### HOW TO NAVIGATE AND USE THIS ARCHIVE (SUGGESTED WORKFLOW)

1.  **Start Here**: Begin by thoroughly reading this `README_Archive_Contents_Guide.txt` to understand the overall organization.
2.  **Choose an Experiment**: Decide which specific experiment (e.g., Experiment 1, Experiment 4) you are interested in exploring or running.
3.  **Locate Experiment Files**: Find the three corresponding files for your chosen experiment:
    *   `matrix_product_approximations_expNUMBER.py`
    *   `run_experimentNUMBER.py`
    *   `README_Experiment_NUMBER.txt`
4.  **Consult the Experiment-Specific README**: Before doing anything else, carefully read the `README_Experiment_NUMBER.txt` for your chosen experiment. This file is your primary guide for that specific analysis.
5.  **Setup Environment**: Follow the setup instructions (Python version, library installations like NumPy, Matplotlib, CVXPY, etc.) detailed in the `README_Experiment_NUMBER.txt`. These are generally consistent but always confirm with the specific README.
6.  **Configure and Run**:
    *   Open the `run_experimentNUMBER.py` file.
    *   Modify parameters within this script as needed for your desired analysis, guided by the instructions in `README_Experiment_NUMBER.txt`.
    *   Execute the experiment by running `python run_experimentNUMBER.py` from your terminal, ensuring you are in the directory where these three files for the experiment are located.

### OUTPUT DIRECTORIES (AUTOMATICALLY CREATED)
When you run a `run_experimentNUMBER.py` script, it will typically create the following directories (if they don't already exist) in the same location as the script, or as specified within that experiment's setup:

*   `plots/`: All generated plots (e.g., .png, .pdf image files) from that specific experiment run will be saved here.
*   `results/`: Numerical results from that specific experiment run, often in JSON or CSV format, will be saved here.

Note: The exact behavior of output directory creation might be detailed in each `README_Experiment_NUMBER.txt`.

### GENERAL NOTES
*   **Self-Contained Experiments**: Each experiment set (the three files: `...exp_NUMBER.py`, `run_experimentNUMBER.py`, `README_Experiment_NUMBER.txt`) is designed to be self-consistent. You do not need to combine code from different experiment numbers to run a specific experiment.
*   **Primary Guidance**: The `README_Experiment_NUMBER.txt` for each experiment is your most crucial resource for that specific analysis.
*   **Code Comments**: The Python scripts are commented to aid understanding of the code logic.
*   **Dependencies**: Ensure all required Python libraries are installed in your environment before attempting to run any experiment.

We hope this guide helps you effectively navigate and utilize the project materials!
================================================================================